プロジェクトの署名

HMIデバイスは、署名付きのプロジェクトのみを受け入れるように構成できます。署名により、許可されたユーザのみがJMobile HMI Runtimeアプリケーションを更新できるようになります。

署名付きのプロジェクトのみを受け入れるようにHMIデバイスを構成するには、プロジェクトに署名するためのx.509証明書が必要です。

x.509証明書は、次の2つの部分で構成されます。

  1. certificate.pfx
    プロジェクトに署名するのに必要な主キーが含まれているファイルであり、PCにインストールする必要があります。このファイルは、JMobile Studioが、HMIデバイスにダウンロードするプロジェクトに署名するのに使用します(主キーは予約ファイルです。これは、所有者がパネルでプロジェクトを変更できるためです)。

  2. certificate.crt
    公開キーが含まれているファイルであり、HMIデバイスに読み込む必要があります。これにより、デバイスは、プロジェクトが正しく署名されているかどうかを確認できるようになります(このファイルは、置換されると保護が失われるため、HMIデバイスの保護された領域に保存されます)。

当社ではSecure Hash Algorithm (SHA256)を使用しています。

PCへの証明書のインストール方法

PCに証明書をインストールするには、certificate.pfxファイルをダブルクリックして、Windowsインストールウィザードをアクティブにします。証明書に関連付けられているパスワードとインストール先を入力するように求められます(例えば、「個人用」フォルダにインストールできます)。

HMIデバイスへの証明書のインストール方法

HMIデバイスでは、certificate.crtは、HMIデバイスの[システム設定]の[セキュリティ]領域からインストールできます("セキュリティ"を参照)。

[セキュリティ]領域で、次の項目を選択します。

JMobile PC Runtimeへの証明書のインストール方法

使用する証明書は、コンテキストメニューで選択できます("コンテキストメニューオプション"

使用する証明書は、PCにインストールしてくださ(証明書はダブルクリックするとインストールできます)

ダウンロードする前にプロジェクトに署名を付けるようにJMobile Studioを構成する方法

証明書に関連する2つのファイルをインストールした後に、[プロジェクトプロパティ]の[プロジェクトの署名]プロパティをtrueに設定することで、パネルにダウンロードするアプリケーションに署名することができます("プロジェクト"を参照)。HMIデバイスにプロジェクトをダウンロードするときに、使用する証明書を入力するように求められます。この証明書は、HMIデバイスにインストールされている証明書と一致する必要があります。

証明書を生成するスクリプト

OpenSSL-Win32の公開ライブラリを使用した証明書の生成方法の例を以下に示します(参考: https://www.openssl.org/)

ファイル: CreateCertificates.cmd

@echo off set OpenSSL="C:\Program Files (x86)\OpenSSL-Win32\bin\openssl.exe" set CertificateName=MyCertificate rem Generate an RSA key %OpenSSL% genrsa -out certificate.key 4096 rem Creating Certificate Signing Requests %OpenSSL% req -new -sha256 -key certificate.key -out certificate.csr -subj "/ST=NY/C=US/L=New York/O=CompanyName/OU=R&D Team/CN=%CertificateName%" rem Self Sign the Certificate Signing Requests %OpenSSL% x509 -req -days 365 -in certificate.csr -signkey certificate.key -out certificate.crt rem Convert to .pfx file %OpenSSL% pkcs12 -export -out certificate.pfx -inkey certificate.key -in certificate.crt -CSP "Microsoft Enhanced RSA and AES Cryptographic Provider" pause

この手順では、パスワードを作成する必要があります。このパスワードは、証明書の主キーにアクセスするのに必要になります。